package com.coderman.common.starter.idempotent.service;

/**
 * Description:
 * date: 2020/9/16 4:29 下午
 *
 * @author fanchunshuai
 * @version 1.0.0
 * @since JDK 1.8
 */
public interface DistributedLocker {
    /**
     * 解锁接口
     * @param lockKey
     */
    void unlock(String lockKey) throws Exception;

    /**
     * 带超时时间的加锁接口
     * @param lockKey  加锁的key
     * @param timeout  超时时间 秒
     * @param tryCount 重试次数
     * @param sleepTime 获取锁失败的休息时间 毫秒
     */
    boolean lock(String lockKey, int timeout, int tryCount, int sleepTime) throws Exception;

    /**
     * 带超时时间的加锁接口
     * @param lockKey
     * @param timeout
     */
    boolean lock(String lockKey, int timeout)throws Exception;
}
